package com.vvv.shortlink.project.dao.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vvv.shortlink.project.dao.entity.LinkOsStatsDO;
import com.vvv.shortlink.project.dto.req.LinkStatsReqDTO;
import com.vvv.shortlink.project.dto.resp.LinkStatsOsRespDTO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author Dell
* @description 针对表【t_link_os_stats(短链接监控操作系统访问状态)】的数据库操作Mapper
* @createDate 2024-02-20 17:11:23
* @Entity com.vvv.shortlink.project.dao.entity.LinkOsStats
*/
public interface LinkOsStatsMapper extends BaseMapper<LinkOsStatsDO> {


    @Insert("INSERT INTO t_link_os_stats (full_short_url, user_id, date, os, cnt) " +
            "VALUES(#{linkOsStatsDO.fullShortUrl}, #{linkOsStatsDO.userId}, #{linkOsStatsDO.date}, #{linkOsStatsDO.os}, #{linkOsStatsDO.cnt}) " +
            "ON DUPLICATE KEY UPDATE " +
            "cnt = cnt + #{linkOsStatsDO.cnt}")
    void monitorShortLink(@Param("linkOsStatsDO") LinkOsStatsDO linkOsStatsDO);

    /**
     * 以操作系统类型分组，获取范围时间内各操作系统类型的总访问量pv
     *
     * @param requestParam
     * @return
     */
    List<LinkStatsOsRespDTO> listOsStatsGroupByOs(@Param("requestParam") LinkStatsReqDTO requestParam);
}




